当前位置:  开发笔记 > 编程语言 > 正文

为什么`cmake --verbose = 1`给出详细的cmake输出,但是`cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL = ON`没有给出?

如何解决《为什么`cmake--verbose=1`给出详细的cmake输出,但是`cmake-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON`没有给出?》经验,为你挑选了1个好方法。

我的目标是查看有关从命令行g++直接调用by的详细信息cmake。我不在乎make此问题的输出。

根据官方的FAQ和有关相关问题的公认答案,我应该确保例如通过传递命令行标志CMAKE_VERBOSE_MAKEFILE:BOOL=ON来设置生成的内容。当我这样做时,它重新查询了一堆属性,但是没有提供有关调用的更多信息。CMakeCache.txt-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON

但是,cmake用旗帜打电话--verbose=1给我的正是我所需要的。

这两种选择的作用不同?是否--verbose=1已弃用或不鼓励使用?



1> fedepad..:

不,这不是您接受的答案和您链接的CMake FAQ所说的,否则我会感到惊讶。
确切地说,他们没有说您应该修改CMakeCache.txt不要修改该文件,这不是一个好习惯,因为这样很容易出错
相反,如果您完全遵循两个来源所说的话,即

cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make

要么

cmake .
make VERBOSE=1

您会在编译和链接阶段看到详细的输出。
另外,如果将以CMakeLists.txt下行放入文件中,则应达到相同的效果:

set( CMAKE_VERBOSE_MAKEFILE on )

在其中一种情况下看不到输出的事实可能是由于先前缓存的配置。
我建议您在可能的情况下进行源代码外构建,以便在这种情况下,只需删除构建目录即可摆脱CMake生成的每个文件和目录。
然后,您可以重新创建新配置,而不会受到先前生成的配置和构建文件的干扰。
当然,我可能错了,您遇到了一个错误,但这似乎不太可能。


编辑:那是因为在配置阶段您没有编译,即您没有使用Makefile,这是命令行选项设置的内容。cmake在项目构建的任何阶段(配置,编译,安装),命令本身都不是一个冗长的选项。当您执行此操作时,它不会显示其他配置信息,cmake .但应显示您的其他信息make
所以CMAKE_VERBOSE_MAKEFILE是错误的选择,如果你想获得详细的CMake从自身输出设置。


那么从CMake本身获取详细输出的正确选项是什么?
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有